﻿using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.IO;


public partial class images_contacts : System.Web.UI.Page
{
    static int groupid;
    string GroupName;
    const char Delimiter = '-';
    static DataTable csvDataTable;
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            PageLoadData();
            if (Session["smsgrpid"] != null)
            {
                groupid = Convert.ToInt32(Session["smsgrpid"].ToString());
                bindcontacts("false");
                foreach (ListViewItem lvi in lstGroups.Items)
                {
                    Image Image1 = (Image)lvi.FindControl("Image1");
                    Label lblgrpid = (Label)lvi.FindControl("lblgrpid");
                    if (lblgrpid.Text == groupid.ToString())
                    {
                        Image1.ImageUrl = "~/images/greendot.jpg";
                    }
                    else
                    {
                        Image1.ImageUrl = "";
                    } 
                }
            }
            Session["smsgrpid"] = null;
            lblNotification.Text = "Please select a contact or group to edit.";
            object grpnm = SqlHelper.ExecuteNonQuery(GlobalVariable.con, CommandType.Text, "select groupname from tbl_group where groupid=" + groupid + "");
            GroupName = grpnm.ToString();
            object totalcontacts = SqlHelper.ExecuteScalar(GlobalVariable.con,CommandType.Text,"select count(ContactId) from tbl_groupcontacts where Unsubscribed='false'");
            if (totalcontacts != null)
            {
                lbt.Text = "("+ totalcontacts.ToString() +")";
            }
        }   
    }

    private void bindcontacts(string unsub)
    {
        DataSet ds1 = SqlHelper.ExecuteDataset(GlobalVariable.con, CommandType.Text, "select * from tbl_groupcontacts where groupid = " + groupid + " and Unsubscribed ='" + unsub + "'");
        DataTable dt1 = ds1.Tables[0];
        lstContacts.DataSource = dt1;
        lstContacts.DataBind();
        if (dt1.Rows.Count > 0)
        {
            foreach (ListViewItem lvi in lstContacts.Items)
            {
                LinkButton lbtnContacts = (LinkButton)lvi.FindControl("lbtnContacts");
                Label lblSubgroupContact = (Label)lvi.FindControl("lblSubgroupContact");
                LinkButton lbtnName = (LinkButton)lvi.FindControl("lbtnName");
                DataSet ds3 = SqlHelper.ExecuteDataset(GlobalVariable.con, CommandType.Text, "select FirstName,LastName,MobileNumber from tbl_groupcontacts where groupid = " + groupid + " and MobileNumber='" + lblSubgroupContact.Text + "'");
                DataTable dt3 = ds3.Tables[0];
                string frstname = dt3.Rows[0]["FirstName"].ToString();
                if (frstname != "")
                {
                    lbtnName.Text = dt3.Rows[0]["FirstName"].ToString() + " " + dt3.Rows[0]["Lastname"].ToString();
                }
                lbtnContacts.Text = dt3.Rows[0]["MobileNumber"].ToString();
                string phnumber = lbtnContacts.Text;
                string newph1 = phnumber.Substring(0, phnumber.Length - 7);
                string newph2 = phnumber.Substring(phnumber.Length - 7);
                string newph3 = newph2.Substring(0, newph2.Length - 4);
                string newph4 = newph2.Substring(newph2.Length - 4);
                string totalph = newph1 + Delimiter + newph3 + Delimiter + newph4;
                lbtnContacts.Text = totalph;
            }
        }
    }
    private void bindcontacts1(string unsub)
    {
        DataSet ds1 = SqlHelper.ExecuteDataset(GlobalVariable.con, CommandType.Text, "select * from tbl_groupcontacts where Unsubscribed ='" + unsub + "'");
        DataTable dt1 = ds1.Tables[0];
        if (dt1.Rows.Count > 0)
        {
            lstContacts.DataSource = dt1;
            lstContacts.DataBind();
            foreach (ListViewItem lvi in lstContacts.Items)
            {
                LinkButton lbtnContacts = (LinkButton)lvi.FindControl("lbtnContacts");
                Label lblSubgroupContact = (Label)lvi.FindControl("lblSubgroupContact");
                LinkButton lbtnName = (LinkButton)lvi.FindControl("lbtnName");
                DataSet ds3 = SqlHelper.ExecuteDataset(GlobalVariable.con, CommandType.Text, "select FirstName,LastName,MobileNumber from tbl_groupcontacts where MobileNumber='" + lblSubgroupContact.Text + "' and Unsubscribed='true'");
                DataTable dt3 = ds3.Tables[0];
                string frstname = dt3.Rows[0]["FirstName"].ToString();
                
                if (frstname != "")
                {
                    lbtnName.Text = dt3.Rows[0]["FirstName"].ToString() + " " + dt3.Rows[0]["Lastname"].ToString();
                }
                lbtnContacts.Text = dt3.Rows[0]["MobileNumber"].ToString();
                string phnumber = lbtnContacts.Text;
                string newph1 = phnumber.Substring(0, phnumber.Length - 7);
                string newph2 = phnumber.Substring(phnumber.Length - 7);
                string newph3 = newph2.Substring(0, newph2.Length - 4);
                string newph4 = newph2.Substring(newph2.Length - 4);
                string totalph = newph1 + Delimiter + newph3 + Delimiter + newph4;
                lbtnContacts.Text = totalph;
            }
            if (Session["opt"] != null)
            {
                lbtnOptoutMultipleContact.Visible = false;
            }
            else
            {
                lbtnOptoutMultipleContact.Visible = true;
            }
            Session["opt"] = null;
        }
        else
        {
            string SelectGroup = "No contacts available in Optout list.";
            Page.Controls.Add(new LiteralControl("<script language='javascript'> window.alert('" + SelectGroup + "')</script>"));
        }
    }
    private void PageLoadData()
    {
        lbtnDeleteContact.Text = "Delete from group";
        lbtnDeleteMultipleContact.Text = "Delete from group";
        lbtnOptoutMultipleContact.Text = "Optout from group";
        DataSet ds = SqlHelper.ExecuteDataset(GlobalVariable.con, CommandType.Text, "select * from tbl_group");
        DataTable dt = ds.Tables[0];
        lstGroups.DataSource = dt;
        lstGroups.DataBind();

        DataSet ds2 = SqlHelper.ExecuteDataset(GlobalVariable.con, CommandType.Text, "select GroupId,GroupName from tbl_group where GroupName!='Opt Outs'");
        DataTable dt2 = ds2.Tables[0];
        ddlSubGroups.DataSource = dt2;
        ddlSubGroups.DataTextField = "GroupName";
        ddlSubGroups.DataValueField = "GroupId";
        ddlSubGroups.DataBind();
        ddlSubGroups.Items.Insert(0, "- Add To Group -");

        ddlNewSubgroupContact.DataSource = dt2;
        ddlNewSubgroupContact.DataTextField = "GroupName";
        ddlNewSubgroupContact.DataValueField = "GroupId";
        ddlNewSubgroupContact.DataBind();
        ddlNewSubgroupContact.Items.Insert(0, "- Add To Group -");

        ddlgrps.DataSource = dt2;
        ddlgrps.DataTextField = "GroupName";
        ddlgrps.DataValueField = "GroupId";
        ddlgrps.DataBind();
        ddlgrps.Items.Insert(0, "- Select Group -");

        ddlExportGroupContacts.DataSource = dt2;
        ddlExportGroupContacts.DataTextField = "GroupName";
        ddlExportGroupContacts.DataValueField = "GroupId";
        ddlExportGroupContacts.DataBind();
        ddlExportGroupContacts.Items.Insert(0, "- Select Group -");

        ddlMoveMultiplecontacts.DataSource = dt2;
        ddlMoveMultiplecontacts.DataTextField = "GroupName";
        ddlMoveMultiplecontacts.DataValueField = "GroupId";
        ddlMoveMultiplecontacts.DataBind();
        ddlMoveMultiplecontacts.Items.Insert(0, "- Add To Group -");

        foreach (ListViewItem lvi in lstGroups.Items)
        {
            LinkButton lblsubgroupname = (LinkButton)lvi.FindControl("lbtnSubGroupName");
            Label lblSubgroupContacts = (Label)lvi.FindControl("lblSubgroupContacts");
            //Image Image1 = (Image)lvi.FindControl("Image1");
            //Image1.ima
            if (lblsubgroupname.Text == "Opt Outs")
            {
                lvi.Visible = false;
            }
            object grpid = SqlHelper.ExecuteScalar(GlobalVariable.con, CommandType.Text, "select groupid from tbl_group where groupname ='" + lblsubgroupname.Text + "'");
            object subgroupcontacts = SqlHelper.ExecuteScalar(GlobalVariable.con, CommandType.Text, "select count(MobileNumber) from tbl_groupcontacts where groupid = " + grpid + " and Unsubscribed='false'");
            lblSubgroupContacts.Text = "(" + subgroupcontacts.ToString() + ")";
        }
        
    }
    protected void lstGroups_ItemCommand(object sender, ListViewCommandEventArgs e)
    {
        if (e.CommandName == "GroupName")
        {
            lbtnDeleteContact.Text = "Delete from Group";
            lbtnDeleteMultipleContact.Text = "Delete from Group";
            //lstContacts.Visible = false;
           
            dvShowContacts.Visible = true;

            dvNewContact.Visible = false;
            dvContact.Visible = false;
            dvselectmultiplecontacts.Visible = false;
            lblNotification.Visible = true;
            string id = (string)e.CommandArgument;
            groupid = Convert.ToInt32(id);
            Session["smsgrpid"] = id;
            foreach (ListViewItem lvi in lstGroups.Items)
            {
                Image Image1 = (Image)lvi.FindControl("Image1");
                Label lblgrpid = (Label)lvi.FindControl("lblgrpid");
                if (lblgrpid.Text == id)
                {
                    Image1.ImageUrl = "~/images/greendot.jpg";
                }
                else
                {
                    Image1.ImageUrl = "";
                }
            }
            DataSet ds1 = SqlHelper.ExecuteDataset(GlobalVariable.con, CommandType.Text, "select * from tbl_groupcontacts where groupid = " + groupid + " and Unsubscribed='false'");
            DataTable dt1 = ds1.Tables[0];
            if (dt1.Rows.Count > 0)
            {
                lstContacts.DataSource = dt1;
                lstContacts.DataBind();
                lblNoContacts.Text = "";
                foreach (ListViewItem lvi in lstContacts.Items)
                {
                    
                    LinkButton lbtnContacts = (LinkButton)lvi.FindControl("lbtnContacts");
                    Label lblSubgroupContact = (Label)lvi.FindControl("lblSubgroupContact");
                    LinkButton lbtnName = (LinkButton)lvi.FindControl("lbtnName");
                    DataSet ds3 = SqlHelper.ExecuteDataset(GlobalVariable.con, CommandType.Text, "select FirstName,LastName,MobileNumber from tbl_groupcontacts where groupid = " + groupid + " and MobileNumber='" + lblSubgroupContact.Text + "'");
                    DataTable dt3 = ds3.Tables[0];
                    string frstname = dt3.Rows[0]["FirstName"].ToString();
                    
                    if (frstname != "")
                    {
                        lbtnName.Text = dt3.Rows[0]["FirstName"].ToString() + " " + dt3.Rows[0]["Lastname"].ToString();
                    }
                    lbtnContacts.Text = dt3.Rows[0]["MobileNumber"].ToString();
                    string phnumber = lbtnContacts.Text;
                    string newph1 = phnumber.Substring(0, phnumber.Length - 7);
                    string newph2 = phnumber.Substring(phnumber.Length - 7);
                    string newph3 = newph2.Substring(0, newph2.Length - 4);
                    string newph4 = newph2.Substring(newph2.Length - 4);
                    string totalph = newph1 + Delimiter + newph3 + Delimiter + newph4;
                    lbtnContacts.Text = totalph;
                }
            }
            else
            {
                lstContacts.DataSource = dt1;
                lstContacts.DataBind();
                lblNoContacts.Text = "There are currently no members in this group. Add members by selecting users in All Contacts and choosing a group to the right. ";
            }
        }
    }
    //protected void lbtnTotalContacts_Click(object sender, EventArgs e)
    //{
    //    lbtnDeleteContact.Text = "Delete from Group";
    //    lstContacts.Visible = true;
       
    //    dvShowContacts.Visible = true;

    //    dvNewContact.Visible = false;
    //    lblNotification.Visible = true;
    //    dvselectmultiplecontacts.Visible = false;
    //    dvContact.Visible = false;
    //    DataSet ds1 = SqlHelper.ExecuteDataset(GlobalVariable.con, CommandType.Text, "select * from tbl_groupcontacts where groupid = " + groupid + " and Unsubscribed='false'");
    //    DataTable dt1 = ds1.Tables[0];
    //    if (dt1.Rows.Count > 0)
    //    {
    //        lstContacts.DataSource = dt1;
    //        lstContacts.DataBind();
    //        lblNoContacts.Text = "";
    //        foreach (ListViewItem lvi in lstContacts.Items)
    //        {
    //            LinkButton lbtnContacts = (LinkButton)lvi.FindControl("lbtnContacts");
    //            Label lblSubgroupContact = (Label)lvi.FindControl("lblSubgroupContact");
    //            DataSet ds3 = SqlHelper.ExecuteDataset(GlobalVariable.con, CommandType.Text, "select FirstName,LastName,MobileNumber from tbl_groupcontacts where groupid = " + groupid + " and MobileNumber='" + lblSubgroupContact.Text + "'");
    //            DataTable dt3 = ds3.Tables[0];
    //            string frstname = dt3.Rows[0]["FirstName"].ToString();
    //            if (frstname != null)
    //            {
    //                if (frstname != "")
    //                {
    //                    lbtnContacts.Text = dt3.Rows[0]["FirstName"].ToString() + " " + dt3.Rows[0]["LastName"].ToString();
    //                }
    //                else
    //                {
    //                    lbtnContacts.Text = dt3.Rows[0]["MobileNumber"].ToString();
    //                }
    //            }
    //        }
    //    }
    //    else
    //    {
    //        lstContacts.DataSource = dt1;
    //        lstContacts.DataBind();
    //        lblNoContacts.Text = "There are currently no members in this group. Add members manually. ";
    //    }
    //    Response.Redirect(Request.Url.AbsoluteUri);
    //}
    protected void lbtnSelectAll_Click(object sender, EventArgs e)
    {
        int checkedcontacts = 0;
        
        
            foreach (ListViewItem lvi in lstContacts.Items)
            {
                CheckBox chkContacts = (CheckBox)lvi.FindControl("chkContacts");
                if (chkContacts.Checked == false)
                {
                    chkContacts.Checked = true;
                    checkedcontacts++;
                }
                else
                {
                    checkedcontacts++;
                }
            }
       
        if (checkedcontacts > 1)
        {
            lblNotification.Visible = false;
            dvContact.Visible = false;
            dvselectmultiplecontacts.Visible = true;
        }
        else
        {
            if (checkedcontacts == 0)
            {
                lblNotification.Visible = true;
                dvContact.Visible = false;
                dvselectmultiplecontacts.Visible = false;
            }
            else
            {
                lblNotification.Visible = false;
                dvContact.Visible = true;
                dvselectmultiplecontacts.Visible = false;
            }
        }
    }
    protected void lbtnSelectNone_Click(object sender, EventArgs e)
    {
        int totalchecked = 0;

       
            foreach (ListViewItem lvi in lstContacts.Items)
            {
                CheckBox chkContacts = (CheckBox)lvi.FindControl("chkContacts");
                if (chkContacts.Checked == true)
                {
                    chkContacts.Checked = false;

                }
            }
        
        if (totalchecked > 1)
        {
            lblNotification.Visible = false;
            dvContact.Visible = false;
            dvselectmultiplecontacts.Visible = true;
        }
        else
        {
            if (totalchecked == 0)
            {
                lblNotification.Visible = true;
                dvContact.Visible = false;
                dvselectmultiplecontacts.Visible = false;
            }
            else
            {
                lblNotification.Visible = false;
                dvContact.Visible = true;
                dvselectmultiplecontacts.Visible = false;
            }
        }
    }
    protected void lstContacts_ItemCommand(object sender, ListViewCommandEventArgs e)
    {
        int totalchecked = 0;
        if (e.CommandName == "Group")
        {
            CheckBox chkContacts = (CheckBox)e.Item.FindControl("chkContacts");
            Label lblSubgroupContact = (Label)e.Item.FindControl("lblSubgroupContact");
            string id = (string)e.CommandArgument;
            groupid = Convert.ToInt32(id);
            if (chkContacts.Checked != true)
            {
                lblNotification.Visible = false;
                chkContacts.Checked = true;
                dvContact.Visible = true;
                UpdateUserContact(lblSubgroupContact.Text);
            }
            else
            {
                lblNotification.Visible = false;
                dvContact.Visible = true;
                UpdateUserContact(lblSubgroupContact.Text);
            }
            foreach (ListViewItem lvi in lstContacts.Items)
            {
                CheckBox chkContacts1 = (CheckBox)lvi.FindControl("chkContacts");
                if (chkContacts1.Checked == true)
                {
                    totalchecked++;
                }
            }
            if (totalchecked > 1)
            {
                lblNotification.Visible = false;
                dvContact.Visible = false;
                dvselectmultiplecontacts.Visible = true;
                dvUpdateNumber.Visible = false;
            }
            else
            {
                if (totalchecked == 0)
                {
                    lblNotification.Visible = true;
                    dvContact.Visible = false;
                    dvselectmultiplecontacts.Visible = false;
                }
                else
                {
                    lblNotification.Visible = false;
                    dvContact.Visible = true;
                    dvselectmultiplecontacts.Visible = false;
                }
            }
        }
    }
    protected void lstContacts_SelectedIndexChanged(object sender, EventArgs e)
    {

    }
    protected void chkContacts_CheckedChanged(object sender, EventArgs e)
    {
        int checkedcontacts = 0;
        foreach (ListViewItem lvi in lstContacts.Items)
        {
            CheckBox chkContacts = (CheckBox)lvi.FindControl("chkContacts");
            Label lblSubgroupContact = (Label)lvi.FindControl("lblSubgroupContact");
            if (chkContacts.Checked == true)
            {
                dvContact.Visible = true;
                UpdateUserContact(lblSubgroupContact.Text);
                checkedcontacts++;
            }
        }
        if (checkedcontacts > 1)
        {
            dvselectmultiplecontacts.Visible = true;
            dvContact.Visible = false;
            lblNotification.Visible = false;
            dvUpdateNumber.Visible = false;
            
        }
        else
        {
            if (checkedcontacts == 0)
            {
                lblNotification.Visible = true;
                dvContact.Visible = false;
                dvselectmultiplecontacts.Visible = false;
                dvUpdateNumber.Visible = false;
                
            }
            else
            {
                lblNotification.Visible = false;
                dvContact.Visible = true;
                dvselectmultiplecontacts.Visible = false;
                dvUpdateNumber.Visible = false;
                
            }
        }
    }
    protected void lbtnEdit_Click(object sender, EventArgs e)
    {

        dvContact.Visible = false;
        dvUpdateNumber.Visible = true;
        DataSet ds = SqlHelper.ExecuteDataset(GlobalVariable.con, CommandType.Text, "select EmailId from tbl_GroupContacts where MobileNumber = '" + lblcnmbrr.Text + "' and groupId=" + groupid + "");
        DataTable dt = ds.Tables[0];
        txtUpdateNumber.Text = lblcnmbrr.Text;
        txtUpdateFirstName.Text = lblFirstName.Text;
        txtUpdateLastName.Text = lblLastName.Text;
        txtUpdateEmailId.Text = dt.Rows[0]["EmailId"].ToString();
    }
    protected void lbtnOptOut_Click(object sender, EventArgs e)
    {
        SqlHelper.ExecuteNonQuery(GlobalVariable.con, CommandType.Text, "update tbl_groupcontacts set Unsubscribed='true' where MobileNumber = '" + lblcnmbrr.Text + "'");
        lblNotification.Visible = true;
        dvContact.Visible = false;
        foreach (ListViewItem lvi in lstGroups.Items)
        {
            LinkButton lblsubgroupname = (LinkButton)lvi.FindControl("lbtnSubGroupName");
            Label lblSubgroupContacts = (Label)lvi.FindControl("lblSubgroupContacts");
            object grpid = SqlHelper.ExecuteScalar(GlobalVariable.con, CommandType.Text, "select groupid from tbl_group where groupname ='" + lblsubgroupname.Text + "'");
            object subgroupcontacts = SqlHelper.ExecuteScalar(GlobalVariable.con, CommandType.Text, "select count(MobileNumber) from tbl_groupcontacts where groupid = " + grpid + " and Unsubscribed='false'");
            lblSubgroupContacts.Text = "(" + subgroupcontacts.ToString() + ")";
        }
        foreach (ListViewItem lvi in lstContacts.Items)
        {
            CheckBox chkContacts = (CheckBox)lvi.FindControl("chkContacts");
            if (chkContacts.Checked == true)
            {
                chkContacts.Checked = false;
            }
        }
        object totalcontacts = SqlHelper.ExecuteScalar(GlobalVariable.con, CommandType.Text, "select count(ContactId) from tbl_groupcontacts where Unsubscribed='false'");
        if (totalcontacts != null)
        {
            lbt.Text = "(" + totalcontacts.ToString() + ")";
        }
        bindcontacts("false");
        string SelectGroup = "Contact number "+ lblcnmbrr.Text +" is opted out from group.";
        Page.Controls.Add(new LiteralControl("<script language='javascript'> window.alert('" + SelectGroup + "')</script>"));
    }
    protected void lbtnoptedgroup_Click(object sender, EventArgs e)
    {
        SqlHelper.ExecuteNonQuery(GlobalVariable.con, CommandType.Text, "update tbl_groupcontacts set Unsubscribed='false' where groupid=" + groupid + " and MobileNumber='"+ lblcnmbrr.Text +"'");
        lblNotification.Visible = true;
        dvContact.Visible = false;
        foreach (ListViewItem lvi in lstGroups.Items)
        {
            LinkButton lblsubgroupname = (LinkButton)lvi.FindControl("lbtnSubGroupName");
            Label lblSubgroupContacts = (Label)lvi.FindControl("lblSubgroupContacts");
            object grpid = SqlHelper.ExecuteScalar(GlobalVariable.con, CommandType.Text, "select groupid from tbl_group where groupname ='" + lblsubgroupname.Text + "'");
            object subgroupcontacts = SqlHelper.ExecuteScalar(GlobalVariable.con, CommandType.Text, "select count(MobileNumber) from tbl_groupcontacts where groupid = " + grpid + " and Unsubscribed='false'");
            lblSubgroupContacts.Text = "(" + subgroupcontacts.ToString() + ")";
        }
        foreach (ListViewItem lvi in lstContacts.Items)
        {
            CheckBox chkContacts = (CheckBox)lvi.FindControl("chkContacts");
            if (chkContacts.Checked == true)
            {
                chkContacts.Checked = false;
            }
        }
        object totalcontacts = SqlHelper.ExecuteScalar(GlobalVariable.con, CommandType.Text, "select count(ContactId) from tbl_groupcontacts where Unsubscribed='false'");
        if (totalcontacts != null)
        {
            lbt.Text = "(" + totalcontacts.ToString() + ")";
        }
        bindcontacts("false");
        string SelectGroup = "Contact number " + lblcnmbrr.Text + " is opted in to group.";
        Page.Controls.Add(new LiteralControl("<script language='javascript'> window.alert('" + SelectGroup + "')</script>"));
    }
    protected void btnUpdate_Click(object sender, EventArgs e)
    {
        
        SqlHelper.ExecuteNonQuery(GlobalVariable.con, CommandType.Text, "update tbl_groupcontacts set MobileNumber='" + txtUpdateNumber.Text.Trim() + "',EmailId='" + txtUpdateEmailId.Text.Trim() + "',FirstName='" + txtUpdateFirstName.Text.Trim() + "',LastName='" + txtUpdateLastName.Text.Trim() + "' where MobileNumber = '" + txtUpdateNumber.Text.Trim() + "' and GroupId =" + groupid + "");
        object GroupContactId = SqlHelper.ExecuteScalar(GlobalVariable.con, CommandType.Text, "select ContactId from tbl_GroupContacts where MobileNumber='" + txtUpdateNumber.Text.Trim() + "' and GroupId=" + groupid + "");
        
        UpdateUserContact(txtUpdateNumber.Text);
        dvUpdateNumber.Visible = false;
        dvContact.Visible = true;
        txtUpdateNumber.Text = "";
        txtUpdateFirstName.Text = "";
        txtUpdateLastName.Text = "";

        txtUpdateEmailId.Text = "";
        Response.Redirect(Request.Url.AbsoluteUri);
    }
    public void UpdateUserContact(string UsrContact)
    {
        try
        {
            DataSet ds = SqlHelper.ExecuteDataset(GlobalVariable.con, CommandType.Text, "select FirstName,LastName,currentDT,Unsubscribed from tbl_GroupContacts where MobileNumber = '" + UsrContact + "' and GroupId=" + groupid + "");
            DataTable dt = ds.Tables[0];
            string unsub = dt.Rows[0]["Unsubscribed"].ToString();
            if (unsub == "true")
            {
                object opt = SqlHelper.ExecuteScalar(GlobalVariable.con, CommandType.Text, "select GroupName from tbl_group where GroupId=" + groupid + "");
                if (opt != null)
                {
                    string abc = opt.ToString();
                    if (abc == "Opt Outs")
                    {
                        lbtnoptedgroup.Visible = false;
                        ddlSubGroups.Visible = true;
                    }
                    else
                    {
                        lbtnoptedgroup.Visible = true;
                        ddlSubGroups.Visible = false;
                    }
                }
                object grpname = SqlHelper.ExecuteScalar(GlobalVariable.con, CommandType.Text, "select GroupName from tbl_group where GroupId=" + groupid + "");
                lbtnoptedgroup.Text = "Add To Group " + grpname.ToString() + "";
                dv1.Visible = false;
            }
            else
            {
                ddlSubGroups.Visible = true;
                dv1.Visible = true;
                lbtnoptedgroup.Visible = false;
            }
            lblFirstName.Text = dt.Rows[0]["FirstName"].ToString();
            lblLastName.Text = dt.Rows[0]["LastName"].ToString();
            string phnumber = UsrContact;
            lblcnmbrr.Text = phnumber;
            string newph1 = phnumber.Substring(0, phnumber.Length - 7);
            string newph2 = phnumber.Substring(phnumber.Length - 7);
            string newph3 = newph2.Substring(0, newph2.Length - 4);
            string newph4 = newph2.Substring(newph2.Length - 4);
            string totalph = newph1 + Delimiter + newph3 + Delimiter + newph4;
            lblContactNumber.Text = totalph;
            
            DateTime dta = Convert.ToDateTime(dt.Rows[0]["currentDT"].ToString());
            lblJoiningDate.Text = "Joined group on " + dta.ToShortDateString() + "";
        }
        catch (Exception ex)
        {
        }
    }
    //public void UpdateSUserContact(string UsrContact, long SubgroupContactId)
    //{
    //    try
    //    {
    //        DataSet ds = SqlHelper.ExecuteDataset(GlobalVariable.con, CommandType.Text, "select FirstName,LastName,Date,Status from tbl_SubgroupContacts where MobileNumber = '" + UsrContact + "' and SubgroupContactId=" + SubgroupContactId + "");
    //        DataTable dt = ds.Tables[0];
    //        lblFirstName.Text = dt.Rows[0]["FirstName"].ToString();
    //        lblLastName.Text = dt.Rows[0]["LastName"].ToString();
    //        string phnumber = UsrContact;
    //        lblcnmbrr.Text = phnumber;
    //        string newph1 = phnumber.Substring(0, phnumber.Length - 7);
    //        string newph2 = phnumber.Substring(phnumber.Length - 7);
    //        string newph3 = newph2.Substring(0, newph2.Length - 4);
    //        string newph4 = newph2.Substring(newph2.Length - 4);
    //        string totalph = newph1 + Delimiter + newph3 + Delimiter + newph4;
    //        lblContactNumber.Text = totalph;
    //        DateTime dta = Convert.ToDateTime(dt.Rows[0]["Date"].ToString());
    //        lblJoiningDate.Text = "Joined group on " + dta.ToShortDateString() + "";
    //    }
    //    catch (Exception ex)
    //    {
    //    }
    //}
    protected void lbtnDeleteContact_Click(object sender, EventArgs e)
    {
        if (groupid > 0)
        {
            object ContactId = SqlHelper.ExecuteScalar(GlobalVariable.con, CommandType.Text, "select ContactId from tbl_GroupContacts where MobileNumber='" + lblcnmbrr.Text + "' and groupid="+groupid+"");
            if (ContactId != null)
            {
                object grpnm = SqlHelper.ExecuteScalar(GlobalVariable.con, CommandType.Text, "select GroupName from tbl_group where GroupId=" + groupid + "");

                //GlobalKeywordResponse = "Your number has been requested to be removed from the " + grpnm.ToString() + " group. You will no longer receive messages from this group.  To rejoin, text a specific keyword to the number.";
                SqlHelper.ExecuteScalar(GlobalVariable.con, CommandType.Text, "delete from tbl_groupcontacts where MobileNumber='" + lblcnmbrr.Text + "' and ContactId = " + Convert.ToInt64(ContactId.ToString()) + " and groupid=" + groupid + "");
                //lblResultDelete.Text = GlobalKeywordResponse;
                lblResultDelete.Visible = true;
                Response.Redirect(Request.Url.AbsoluteUri);
            }
        }
        else
        {
            object ContactId = SqlHelper.ExecuteScalar(GlobalVariable.con, CommandType.Text, "select ContactId from tbl_GroupContacts where MobileNumber='" + lblcnmbrr.Text + "'");
            if (ContactId != null)
            {
                object grpnm = SqlHelper.ExecuteScalar(GlobalVariable.con, CommandType.Text, "select GroupName from tbl_group where GroupId=" + groupid + "");

                //GlobalKeywordResponse = "Your number has been requested to be removed from the " + grpnm.ToString() + " group. You will no longer receive messages from this group.  To rejoin, text a specific keyword to the number.";
                SqlHelper.ExecuteScalar(GlobalVariable.con, CommandType.Text, "delete from tbl_groupcontacts where MobileNumber='" + lblcnmbrr.Text + "' and ContactId = " + Convert.ToInt64(ContactId.ToString()) + "");
                //lblResultDelete.Text = GlobalKeywordResponse;
                lblResultDelete.Visible = true;
                Response.Redirect(Request.Url.AbsoluteUri);
            }
        }
    }
    protected void lbtnCancelUpdate_Click(object sender, EventArgs e)
    {
        dvContact.Visible = true;
        dvUpdateNumber.Visible = false;
        txtUpdateNumber.Text = "";
        txtUpdateFirstName.Text = "";
        txtUpdateLastName.Text = "";
        
        txtUpdateEmailId.Text = "";
    }
    //public int msgcount(int uid, int msgcount)
    //{
    //    object msgsleft = SqlHelper.ExecuteScalar(GlobalVariable.con, CommandType.Text, "select MsgsLeft from tbl_user where userid = '" + uid + "'");
    //    int abc = Convert.ToInt32(msgsleft.ToString());
    //    int leftmsgss = abc - msgcount;
    //    SqlHelper.ExecuteNonQuery(GlobalVariable.con, CommandType.Text, "update tbl_user set MsgsLeft = '" + leftmsgss + "' where userid = '" + uid + "'");
    //    return leftmsgss;

    //}
    protected void lbtnCancelSMS_Click(object sender, EventArgs e)
    {
       // ImgDel.Visible = true;
        ddlSubGroups.Visible = true;
        lbtnDeleteContact.Visible = true;
        
    } 
    protected void chkSubContacts_CheckedChanged(object sender, EventArgs e)
    {
        int checkedsubcontacts = 0;
        
        if (checkedsubcontacts > 1)
        {
            dvselectmultiplecontacts.Visible = true;
            dvContact.Visible = false;
            lblNotification.Visible = false;
            dvUpdateNumber.Visible = false;
            
        }
        else
        {
            if (checkedsubcontacts == 0)
            {
                lblNotification.Visible = true;
                dvContact.Visible = false;
                dvselectmultiplecontacts.Visible = false;
                dvUpdateNumber.Visible = false;
                
            }
            else
            {
                lblNotification.Visible = false;
                dvContact.Visible = true;
                dvselectmultiplecontacts.Visible = false;
                dvUpdateNumber.Visible = false;
                
            }
        }
    }
    protected void btnSubmitNewContact_Click(object sender, EventArgs e)
    {
        try
        {
            //object groupname5 = SqlHelper.ExecuteScalar(GlobalVariable.con, CommandType.Text, "select GroupName from tbl_group where GroupId=" + groupid + "");

            object ContactId1 = SqlHelper.ExecuteScalar(GlobalVariable.con, CommandType.Text, "select ContactId from tbl_groupcontacts where MobileNumber='" + txtNewNumber.Text.Trim() + "' and groupid = " + ddlNewSubgroupContact.SelectedValue + "");
            if (ContactId1 == null)
            {

                SqlHelper.ExecuteNonQuery(GlobalVariable.con, CommandType.Text, "insert into tbl_groupcontacts (GroupId,MobileNumber,EmailId,FirstName,LastName,CurrentDT,Unsubscribed) values(" + ddlNewSubgroupContact.SelectedValue + ",'" + txtNewNumber.Text.Trim() + "','" + txtNewMailId.Text.Trim() + "','" + txtNewFirstName.Text.Trim() + "','" + txtNewLastname.Text.Trim() + "','"+DateTime.Now+"','false')");
                string SelectGroup1 = "Contact successfully added to " + ddlNewSubgroupContact.SelectedItem.Text + " group.";
                Page.Controls.Add(new LiteralControl("<script language='javascript'> window.alert('" + SelectGroup1 + "')</script>"));
                ClearNewContactFields();
                PageLoadData();
                //Response.Redirect(Request.Url.AbsoluteUri);
            }
            else
            {
                //object groupname1 = SqlHelper.ExecuteScalar(GlobalVariable.con, CommandType.Text, "select GroupName from tbl_group where GroupId=" + ddlNewSubgroupContact.SelectedValue + "");
                string SelectGroup1 = "Contact already  added to " + ddlNewSubgroupContact.SelectedItem.Text + " group.";
                Page.Controls.Add(new LiteralControl("<script language='javascript'> window.alert('" + SelectGroup1 + "')</script>"));
            }


        }
        catch (Exception exp)
        { }
    }
    private void ClearNewContactFields()
    {
        txtNewNumber.Text = "";
        txtNewFirstName.Text = "";
        txtNewLastname.Text = "";
        txtNewMailId.Text = "";
  
        ddlNewSubgroupContact.SelectedIndex = 0;
    }
    protected void lbtnCancelNewContact_Click(object sender, EventArgs e)
    {
        ClearNewContactFields();
        Response.Redirect(Request.Url.AbsoluteUri);
    }
    protected void lbtnNewContact_Click(object sender, EventArgs e)
    {
        dvShowContacts.Visible = false;
        dvNewContact.Visible = true;
        dvimportcontacts.Visible = false;
        dvExportContacts.Visible = false;
        dvMassoptout.Visible = false;
        dvMassDelete.Visible = false;
        foreach (ListViewItem lvi in lstGroups.Items)
        {
            Image Image1 = (Image)lvi.FindControl("Image1");
            Label lblgrpid = (Label)lvi.FindControl("lblgrpid");
            Image1.ImageUrl = "";
        }
    }
    protected void lbtnimportcontacts_Click(object sender, EventArgs e)
    {
        dvShowContacts.Visible = false;
        dvNewContact.Visible = false;
        dvimportcontacts.Visible = true;
        dvExportContacts.Visible = false;
        dvMassoptout.Visible = false;
        dvMassDelete.Visible = false;
        foreach (ListViewItem lvi in lstGroups.Items)
        {
            Image Image1 = (Image)lvi.FindControl("Image1");
            Label lblgrpid = (Label)lvi.FindControl("lblgrpid");
            Image1.ImageUrl = "";
        }
    }

    protected void lbtnExportContacts_Click(object sender, EventArgs e)
    {
        dvShowContacts.Visible = false;
        dvNewContact.Visible = false;
        dvimportcontacts.Visible = false;
        dvExportContacts.Visible = true;
        dvMassoptout.Visible = false;
        dvMassDelete.Visible = false;
        foreach (ListViewItem lvi in lstGroups.Items)
        {
            Image Image1 = (Image)lvi.FindControl("Image1");
            Label lblgrpid = (Label)lvi.FindControl("lblgrpid");
            Image1.ImageUrl = "";
        }
    }
    protected void lbtnMassOptOut_Click(object sender, EventArgs e)
    {
        dvShowContacts.Visible = false;
        dvNewContact.Visible = false;
        dvimportcontacts.Visible = false;
        dvExportContacts.Visible = false;
        dvMassoptout.Visible = true;
        dvMassDelete.Visible = false;
        foreach (ListViewItem lvi in lstGroups.Items)
        {
            Image Image1 = (Image)lvi.FindControl("Image1");
            Label lblgrpid = (Label)lvi.FindControl("lblgrpid");
            Image1.ImageUrl = "";
        }
    }
    protected void lbtnMassDelete_Click(object sender, EventArgs e)
    {
        dvShowContacts.Visible = false;
        dvNewContact.Visible = false;
        dvimportcontacts.Visible = false;
        dvExportContacts.Visible = false;
        dvMassoptout.Visible = false;
        dvMassDelete.Visible = true;
        foreach (ListViewItem lvi in lstGroups.Items)
        {
            Image Image1 = (Image)lvi.FindControl("Image1");
            Label lblgrpid = (Label)lvi.FindControl("lblgrpid");
            Image1.ImageUrl = "";
        }
    }
    protected void ddlSubGroups_SelectedIndexChanged(object sender, EventArgs e)
    {

        DataSet ds = SqlHelper.ExecuteDataset(GlobalVariable.con, CommandType.Text, "select ContactId,MobileNumber,EmailId,FirstName,LastName from tbl_groupcontacts where MobileNumber='" + lblcnmbrr.Text + "'");
        DataTable dt = ds.Tables[0];
        object groupContactId = SqlHelper.ExecuteScalar(GlobalVariable.con, CommandType.Text, "select ContactId from tbl_groupcontacts where MobileNumber='" + lblcnmbrr.Text + "' and GroupId=" + Convert.ToInt32(ddlSubGroups.SelectedValue) + "");
        if (groupContactId == null)
        {
            SqlHelper.ExecuteNonQuery(GlobalVariable.con, CommandType.Text, "insert into tbl_groupcontacts (GroupId,MobileNumber,EmailId,FirstName,LastName,CurrentDT,Unsubscribed) values(" + ddlSubGroups.SelectedValue + ",'" + lblcnmbrr.Text + "','" + dt.Rows[0]["EmailId"].ToString() + "','" + dt.Rows[0]["FirstName"].ToString() + "','" + dt.Rows[0]["LastName"].ToString() + "','" + DateTime.Now + "','false')");
            string SelectGroup = "Contact successfully added to " + ddlSubGroups.SelectedItem.Text + " group.";
            Page.Controls.Add(new LiteralControl("<script language='javascript'> window.alert('" + SelectGroup + "')</script>"));
            object gid = SqlHelper.ExecuteScalar(GlobalVariable.con, CommandType.Text, "select GroupId from tbl_groupcontacts where MobileNumber='" + lblcnmbrr.Text + "'");
            if (gid != null)
            {
                int gd = Convert.ToInt32(gid.ToString());
                object gn = SqlHelper.ExecuteScalar(GlobalVariable.con, CommandType.Text, "select GroupName from tbl_group where GroupId=" + gd + "");
                string gnn = gn.ToString();
                if (gnn == "Opt Outs")
                {
                    SqlHelper.ExecuteNonQuery(GlobalVariable.con, CommandType.Text, "delete from tbl_groupcontacts where MobileNumber='" + lblcnmbrr.Text + "' and GroupId=" + gd + "");
                }
            }
            Response.Redirect(Request.Url.AbsoluteUri);
        }
        else
        {
            string SelectGroup = "This contact already exists in " + ddlSubGroups.SelectedItem.Text + " group.";
            Page.Controls.Add(new LiteralControl("<script language='javascript'> window.alert('" + SelectGroup + "')</script>"));
        }
    }
    protected void ddlMoveMultiplecontacts_SelectedIndexChanged(object sender, EventArgs e)
    {
        string Notaddednumbers = "";

        foreach (ListViewItem lvi in lstContacts.Items)
        {
            CheckBox chkContacts = (CheckBox)lvi.FindControl("chkContacts");
            Label lblSubgroupContact = (Label)lvi.FindControl("lblSubgroupContact");
            if (chkContacts.Checked == true)
            {
                //object ContactId = SqlHelper.ExecuteScalar(GlobalVariable.con, CommandType.Text, "select ContactId from tbl_GroupContacts where MobileNumber='" + lblSubgroupContact.Text + "' and GroupId=" + groupid + "");
                DataSet ds = SqlHelper.ExecuteDataset(GlobalVariable.con, CommandType.Text, "select ContactId,MobileNumber,EmailId,FirstName,LastName from tbl_groupcontacts where MobileNumber='" + lblSubgroupContact.Text + "'");
                DataTable dt = ds.Tables[0];
                object ContactId = SqlHelper.ExecuteScalar(GlobalVariable.con, CommandType.Text, "select ContactId from tbl_groupcontacts where MobileNumber='" + lblSubgroupContact.Text + "' and groupid=" + ddlMoveMultiplecontacts.SelectedValue + "");
                if (ContactId == null)
                {
                    SqlHelper.ExecuteNonQuery(GlobalVariable.con, CommandType.Text, "insert into tbl_groupcontacts (GroupId,MobileNumber,EmailId,FirstName,LastName,CurrentDT,Unsubscribed) values(" + ddlMoveMultiplecontacts.SelectedValue + ",'" + lblSubgroupContact.Text + "','" + dt.Rows[0]["EmailId"].ToString() + "','" + dt.Rows[0]["FirstName"].ToString() + "','" + dt.Rows[0]["LastName"].ToString() + "','"+ DateTime.Now +"','false')");
                }
                else
                {
                    SqlHelper.ExecuteNonQuery(GlobalVariable.con, CommandType.Text, "update tbl_groupcontacts set Unsubscribed='false' where MobileNumber = '" + lblSubgroupContact.Text + "' and groupId=" + ddlMoveMultiplecontacts.SelectedValue + "");
                    Notaddednumbers += lblSubgroupContact.Text;
                }
            }
        }
        Response.Redirect(Request.Url.AbsoluteUri);
    }
    protected void lbtnDeleteMultipleContact_Click(object sender, EventArgs e)
    {
        int contcts = 0;
        foreach (ListViewItem lvi in lstContacts.Items)
        {
            CheckBox chkContacts = (CheckBox)lvi.FindControl("chkContacts");
            Label lblSubgroupContact = (Label)lvi.FindControl("lblSubgroupContact");
            if (chkContacts.Checked == true)
            {
                object ContactId = SqlHelper.ExecuteScalar(GlobalVariable.con, CommandType.Text, "select ContactId from tbl_GroupContacts where MobileNumber='" + lblSubgroupContact.Text + "'");
                if (ContactId != null)
                {
                    SqlHelper.ExecuteScalar(GlobalVariable.con, CommandType.Text, "delete from tbl_groupcontacts where MobileNumber='" + lblSubgroupContact.Text + "' and ContactId=" + Convert.ToInt64(ContactId.ToString()) + "");
                    contcts++;
                }
            } 
            
        }
        string SelectGroup = "" + contcts + " Selected contact(s) has been deleted successfully.";
        Page.Controls.Add(new LiteralControl("<script language='javascript'> window.alert('" + SelectGroup + "')</script>"));
        foreach (ListViewItem lvi in lstGroups.Items)
        {
            LinkButton lblsubgroupname = (LinkButton)lvi.FindControl("lbtnSubGroupName");
            Label lblSubgroupContacts = (Label)lvi.FindControl("lblSubgroupContacts");
            object grpid = SqlHelper.ExecuteScalar(GlobalVariable.con, CommandType.Text, "select groupid from tbl_group where groupname ='" + lblsubgroupname.Text + "'");
            object subgroupcontacts = SqlHelper.ExecuteScalar(GlobalVariable.con, CommandType.Text, "select count(MobileNumber) from tbl_groupcontacts where groupid = " + grpid + " and Unsubscribed='false'");
            lblSubgroupContacts.Text = "(" + subgroupcontacts.ToString() + ")";
        }
        foreach (ListViewItem lvi in lstContacts.Items)
        {
            CheckBox chkContacts = (CheckBox)lvi.FindControl("chkContacts");
            if (chkContacts.Checked == true)
            {
                chkContacts.Checked = false;
            }
        }
        object totalcontacts = SqlHelper.ExecuteScalar(GlobalVariable.con, CommandType.Text, "select count(ContactId) from tbl_groupcontacts where Unsubscribed='false'");
        if (totalcontacts != null)
        {
            lbt.Text = "(" + totalcontacts.ToString() + ")";
        }
        bindcontacts("false");
        dvselectmultiplecontacts.Visible = false;
    }
    protected void lstGroups_SelectedIndexChanged(object sender, EventArgs e)
    {
        //Label lblSubgroupContact = (Label)e.Item.FindControl("lblSubgroupContact");
    }
    private void SearchData()
    {
        Int64 a = 0;
        string ColName;
        string ColName2 = "";
        DataSet ds1 = new DataSet();
        try
        {
            a = Convert.ToInt64(txtSearch.Text);
            ColName = "MobileNumber";
            ds1 = SqlHelper.ExecuteDataset(GlobalVariable.con, CommandType.Text, "select * from tbl_groupcontacts where " + ColName + " like '" + txtSearch.Text + "%' and groupid=" + groupid + "");
        }
        catch
        {
            ColName = "FirstName";
            ColName2 = "LastName";
            ds1 = SqlHelper.ExecuteDataset(GlobalVariable.con, CommandType.Text, "select * from tbl_groupcontacts where (FirstName like '" + txtSearch.Text + "%' or LastName like '" + txtSearch.Text + "%') and groupid=" + groupid + "");
        }
        DataTable dt1 = ds1.Tables[0];
        //DataTable dt4 = ds1.Tables[1];
        if (dt1.Rows.Count > 0)
        {
            int rcount = dt1.Rows.Count;
            lstContacts.DataSource = dt1;
            lstContacts.DataBind();
            foreach (ListViewItem lvi in lstContacts.Items)
            {
                LinkButton lbtnContacts = (LinkButton)lvi.FindControl("lbtnContacts");
                Label lblSubgroupContact = (Label)lvi.FindControl("lblSubgroupContact");
                LinkButton lbtnName = (LinkButton)lvi.FindControl("lbtnName");
                DataSet ds3 = SqlHelper.ExecuteDataset(GlobalVariable.con, CommandType.Text, "select FirstName,LastName,MobileNumber from tbl_groupcontacts where groupid = " + Convert.ToInt32(groupid) + " and MobileNumber='" + lblSubgroupContact.Text + "'");
                DataTable dt3 = ds3.Tables[0];
                if (dt3.Rows.Count > 0)
                {
                    string frstname = dt3.Rows[0]["FirstName"].ToString();
                    if (frstname != "")
                    {
                        lbtnName.Text = dt3.Rows[0]["FirstName"].ToString() + " " + dt3.Rows[0]["Lastname"].ToString();
                    }
                    lbtnContacts.Text = dt3.Rows[0]["MobileNumber"].ToString();
                    string phnumber = lbtnContacts.Text;
                    string newph1 = phnumber.Substring(0, phnumber.Length - 7);
                    string newph2 = phnumber.Substring(phnumber.Length - 7);
                    string newph3 = newph2.Substring(0, newph2.Length - 4);
                    string newph4 = newph2.Substring(newph2.Length - 4);
                    string totalph = newph1 + Delimiter + newph3 + Delimiter + newph4;
                    lbtnContacts.Text = totalph;
                }
            }
        }
        else
        {
            string SelectGroup = "Sorry no contact info available.";
            Page.Controls.Add(new LiteralControl("<script language='javascript'> window.alert('" + SelectGroup + "')</script>"));
        }
    }
    private void SearchData1()
    {
        Int64 a = 0;
        string ColName;
        string ColName2 = "";
        DataSet ds1 = new DataSet();
        try
        {
            a = Convert.ToInt64(txtSearch.Text);
            ColName = "MobileNumber";
            ds1 = SqlHelper.ExecuteDataset(GlobalVariable.con, CommandType.Text, "select * from tbl_groupcontacts where " + ColName + " like '" + txtSearch.Text + "%'");
        }
        catch
        {
            ColName = "FirstName";
            ColName2 = "LastName";
            ds1 = SqlHelper.ExecuteDataset(GlobalVariable.con, CommandType.Text, "select * from tbl_groupcontacts where (FirstName like '" + txtSearch.Text + "%' or LastName like '" + txtSearch.Text + "%')");
        }
        DataTable dt1 = ds1.Tables[0];
        //DataTable dt4 = ds1.Tables[1];
        if (dt1.Rows.Count > 0)
        {
            int rcount = dt1.Rows.Count;
            lstContacts.DataSource = dt1;
            lstContacts.DataBind();
            foreach (ListViewItem lvi in lstContacts.Items)
            {
                LinkButton lbtnContacts = (LinkButton)lvi.FindControl("lbtnContacts");
                Label lblSubgroupContact = (Label)lvi.FindControl("lblSubgroupContact");
                LinkButton lbtnName = (LinkButton)lvi.FindControl("lbtnName");
                DataSet ds3 = SqlHelper.ExecuteDataset(GlobalVariable.con, CommandType.Text, "select FirstName,LastName,MobileNumber from tbl_groupcontacts where groupid = " + Convert.ToInt32(groupid) + " and MobileNumber='" + lblSubgroupContact.Text + "'");
                DataTable dt3 = ds3.Tables[0];
                if (dt3.Rows.Count > 0)
                {
                    string frstname = dt3.Rows[0]["FirstName"].ToString();
                    if (frstname != "")
                    {
                        lbtnName.Text = dt3.Rows[0]["FirstName"].ToString() + " " + dt3.Rows[0]["Lastname"].ToString();
                    }
                    lbtnContacts.Text = dt3.Rows[0]["MobileNumber"].ToString();
                    string phnumber = lbtnContacts.Text;
                    string newph1 = phnumber.Substring(0, phnumber.Length - 7);
                    string newph2 = phnumber.Substring(phnumber.Length - 7);
                    string newph3 = newph2.Substring(0, newph2.Length - 4);
                    string newph4 = newph2.Substring(newph2.Length - 4);
                    string totalph = newph1 + Delimiter + newph3 + Delimiter + newph4;
                    lbtnContacts.Text = totalph;
                }
            }
        }
        else
        {
            string SelectGroup = "Sorry no contact info available.";
            Page.Controls.Add(new LiteralControl("<script language='javascript'> window.alert('" + SelectGroup + "')</script>"));
        }
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        if (groupid > 0)
        {
            if (txtSearch.Text == string.Empty)
            {
                string SelectGroup = "Enter valid information to search.";
                Page.Controls.Add(new LiteralControl("<script language='javascript'> window.alert('" + SelectGroup + "')</script>"));
            }
            else
            {
                SearchData();
            }
        }
        else if(lstContacts.Items.Count>0)
        {
            SearchData1();
        }
        else
        {
            string SelectGroup = "Select a particular group to use search feature.";
            Page.Controls.Add(new LiteralControl("<script language='javascript'> window.alert('" + SelectGroup + "')</script>"));
        }
    }
    protected void btnUpload_Click(object sender, EventArgs e)
    {
        try
        {
            int intDocFileLength = this.FUContacts.PostedFile.ContentLength;
            string strPostedFileName = this.FUContacts.PostedFile.FileName;
            if ((strPostedFileName != string.Empty))
            {
                string strExtn = System.IO.Path.GetExtension(strPostedFileName).ToLower();
                if ((strExtn == ".csv"))
                {
                    if (FUContacts.HasFile)
                    {
                        // FileInfo fileinfo = new FileInfo(filUpload.PostedFile.FileName);
                        string strCsvFilePath = Server.MapPath("~\\App_Data\\" + FUContacts.FileName);
                        //Save the CSV file in the Server inside 'CSVFolder' 
                        FUContacts.SaveAs(strCsvFilePath);
                        csvDataTable = DataFlow.csvToDataTable(strCsvFilePath, true);
                        gv.DataSource = csvDataTable;
                        gv.DataBind();
                        if (csvDataTable.Rows.Count > 0)
                        {
                            btnImport.Visible = true;
                            btnImport.Focus();
                        }

                        File.Delete(strCsvFilePath);
                       
                    }
                }
            }
        }
        catch (Exception exp)
        {

        }
    }
    protected void btnImport_Click(object sender, EventArgs e)
    {
        int ccount = 0;
        int fcount = 0;
        if (gv.Rows.Count > 0)
        {
            for (int count = 0; count <= gv.Rows.Count - 1; count++)
            {
                object ContactId = SqlHelper.ExecuteScalar(GlobalVariable.con, CommandType.Text, "select ContactId from tbl_groupcontacts where MobileNumber='" + gv.Rows[count].Cells[0].Text.ToString() + "' and GroupId='" + ddlgrps.SelectedValue + "'");
                if (ContactId == null)
                {
                    if (gv.Rows[count].Cells[0].Text.Length >= 10)
                    {
                        SqlHelper.ExecuteNonQuery(GlobalVariable.con, CommandType.Text, "insert into tbl_groupcontacts (groupid,MobileNumber,EmailId,FirstName,LastName,CurrentDT,Unsubscribed) values(" + ddlgrps.SelectedValue + ",'" + gv.Rows[count].Cells[0].Text.ToString() + "','" + null + "','" + null + "','" + null + "','" + DateTime.Now + "','false')");
                        ccount++;
                    }
                }
                else
                {
                    //SqlHelper.ExecuteNonQuery(GlobalVariable.con, CommandType.Text, "update tbl_groupcontacts set Unsubscribed='false' where MobileNumber='" + gv.Rows[count].Cells[0].Text.ToString() + "' and groupid=" + ddlgrps.SelectedValue + "");
                    fcount++;
                }
            }
            string SelectGroup = "Import contacts succeeded.. Contacts Added: (" + ccount + ")";
            Page.Controls.Add(new LiteralControl("<script language='javascript'> window.alert('" + SelectGroup + "')</script>"));
            dvShowContacts.Visible = true;
            dvNewContact.Visible = false;
            dvimportcontacts.Visible = false;
            dvExportContacts.Visible = false;
            lblNotification.Visible = true;
            dvContact.Visible = false;
            foreach (ListViewItem lvi in lstGroups.Items)
            {
                LinkButton lblsubgroupname = (LinkButton)lvi.FindControl("lbtnSubGroupName");
                Label lblSubgroupContacts = (Label)lvi.FindControl("lblSubgroupContacts");
                object grpid = SqlHelper.ExecuteScalar(GlobalVariable.con, CommandType.Text, "select groupid from tbl_group where groupname ='" + lblsubgroupname.Text + "'");
                object subgroupcontacts = SqlHelper.ExecuteScalar(GlobalVariable.con, CommandType.Text, "select count(MobileNumber) from tbl_groupcontacts where groupid = " + grpid + " and Unsubscribed='false'");
                lblSubgroupContacts.Text = "(" + subgroupcontacts.ToString() + ")";
            }
            foreach (ListViewItem lvi in lstContacts.Items)
            {
                CheckBox chkContacts = (CheckBox)lvi.FindControl("chkContacts");
                if (chkContacts.Checked == true)
                {
                    chkContacts.Checked = false;
                }
            }
            object totalcontacts = SqlHelper.ExecuteScalar(GlobalVariable.con, CommandType.Text, "select count(ContactId) from tbl_groupcontacts where Unsubscribed='false'");
            if (totalcontacts != null)
            {
                lbt.Text = "(" + totalcontacts.ToString() + ")";
            }
        }
        DataTable dt = new DataTable();
        gv.DataSource = dt;
        gv.DataBind();
        //Response.Redirect(Request.Url.AbsoluteUri);
    }
    protected void lbtnopt_Click(object sender, EventArgs e)
    {
        bindcontacts1("true");
        dvShowContacts.Visible = true;
        dvNewContact.Visible = false;
        dvContact.Visible = false;
        dvselectmultiplecontacts.Visible = false;
        lblNotification.Visible = true;
        foreach (ListViewItem lvi in lstGroups.Items)
        {
            Image Image1 = (Image)lvi.FindControl("Image1");
            Label lblgrpid = (Label)lvi.FindControl("lblgrpid");
            Image1.ImageUrl = "";
        }
        Session["opt"] = "OK";
    }

    protected void btnExport_Click(object sender, EventArgs e)
    {
        if (ddlExportGroupContacts.SelectedIndex != 0)
        {
            DataTable dt = SqlHelper.ExecuteDatatable(GlobalVariable.con, CommandType.Text, "Select MobileNumber,EmailId,FirstName,LastName from tbl_groupcontacts where GroupId=" + ddlExportGroupContacts.SelectedValue + "");
            GridView grdexport = new GridView();
            grdexport.DataSource = dt;
            grdexport.DataBind();
            DataFlow.Export("Contacts.xls", grdexport);
        }
        else
        {
            string SelectGroup = "Select group to export contacts.";
            Page.Controls.Add(new LiteralControl("<script language='javascript'> window.alert('" + SelectGroup + "')</script>"));
        }
    }
    protected void lbtnOptoutMultipleContact_Click1(object sender, EventArgs e)
    {
        int contcts = 0;
        foreach (ListViewItem lvi in lstContacts.Items)
        {
            CheckBox chkContacts = (CheckBox)lvi.FindControl("chkContacts");
            Label lblSubgroupContact = (Label)lvi.FindControl("lblSubgroupContact");
            if (chkContacts.Checked == true)
            {
                object ContactId = SqlHelper.ExecuteScalar(GlobalVariable.con, CommandType.Text, "select ContactId from tbl_GroupContacts where MobileNumber='" + lblSubgroupContact.Text + "'");
                if (ContactId != null)
                {
                    SqlHelper.ExecuteScalar(GlobalVariable.con, CommandType.Text, "update tbl_groupcontacts set Unsubscribed='true' where MobileNumber='" + lblSubgroupContact.Text + "' and ContactId=" + Convert.ToInt64(ContactId.ToString()) + "");
                    contcts++;
                }
            }

        }
        string SelectGroup = "" + contcts + " Selected contact(s) has been opted out successfully.";
        Page.Controls.Add(new LiteralControl("<script language='javascript'> window.alert('" + SelectGroup + "')</script>"));
        foreach (ListViewItem lvi in lstGroups.Items)
        {
            LinkButton lblsubgroupname = (LinkButton)lvi.FindControl("lbtnSubGroupName");
            Label lblSubgroupContacts = (Label)lvi.FindControl("lblSubgroupContacts");
            object grpid = SqlHelper.ExecuteScalar(GlobalVariable.con, CommandType.Text, "select groupid from tbl_group where groupname ='" + lblsubgroupname.Text + "'");
            object subgroupcontacts = SqlHelper.ExecuteScalar(GlobalVariable.con, CommandType.Text, "select count(MobileNumber) from tbl_groupcontacts where groupid = " + grpid + " and Unsubscribed='false'");
            lblSubgroupContacts.Text = "(" + subgroupcontacts.ToString() + ")";
        }
        foreach (ListViewItem lvi in lstContacts.Items)
        {
            CheckBox chkContacts = (CheckBox)lvi.FindControl("chkContacts");
            if (chkContacts.Checked == true)
            {
                chkContacts.Checked = false;
            }
        }
        object totalcontacts = SqlHelper.ExecuteScalar(GlobalVariable.con, CommandType.Text, "select count(ContactId) from tbl_groupcontacts where Unsubscribed='false'");
        if (totalcontacts != null)
        {
            lbt.Text = "(" + totalcontacts.ToString() + ")";
        }
        bindcontacts("false");
        dvselectmultiplecontacts.Visible = false;
    }
    protected void lbtnViewAll_Click(object sender, EventArgs e)
    {
        dvShowContacts.Visible = true;
        dvNewContact.Visible = false;
        dvContact.Visible = false;
        dvselectmultiplecontacts.Visible = false;
        lblNotification.Visible = true;
        groupid = 0;
        DataSet ds1 = SqlHelper.ExecuteDataset(GlobalVariable.con, CommandType.Text, "select * from tbl_groupcontacts where Unsubscribed ='false'");
        DataTable dt1 = ds1.Tables[0];
        lstContacts.DataSource = dt1;
        lstContacts.DataBind();
        if (dt1.Rows.Count > 0)
        {
            foreach (ListViewItem lvi in lstContacts.Items)
            {
                LinkButton lbtnContacts = (LinkButton)lvi.FindControl("lbtnContacts");
                Label lblSubgroupContact = (Label)lvi.FindControl("lblSubgroupContact");
                LinkButton lbtnName = (LinkButton)lvi.FindControl("lbtnName");
                DataSet ds3 = SqlHelper.ExecuteDataset(GlobalVariable.con, CommandType.Text, "select FirstName,LastName,MobileNumber from tbl_groupcontacts where MobileNumber='" + lblSubgroupContact.Text + "'");
                DataTable dt3 = ds3.Tables[0];
                string frstname = dt3.Rows[0]["FirstName"].ToString();
                if (frstname != "")
                {
                    lbtnName.Text = dt3.Rows[0]["FirstName"].ToString() + " " + dt3.Rows[0]["Lastname"].ToString();
                }
                lbtnContacts.Text = dt3.Rows[0]["MobileNumber"].ToString();
                string phnumber = lbtnContacts.Text;
                string newph1 = phnumber.Substring(0, phnumber.Length - 7);
                string newph2 = phnumber.Substring(phnumber.Length - 7);
                string newph3 = newph2.Substring(0, newph2.Length - 4);
                string newph4 = newph2.Substring(newph2.Length - 4);
                string totalph = newph1 + Delimiter + newph3 + Delimiter + newph4;
                lbtnContacts.Text = totalph;
            }
        }
        foreach (ListViewItem lvi in lstGroups.Items)
        {
            Image Image1 = (Image)lvi.FindControl("Image1");
            Label lblgrpid = (Label)lvi.FindControl("lblgrpid");
            Image1.ImageUrl = "";
        }
    }
    protected void btnMassUpload_Click(object sender, EventArgs e)
    {
        try
        {
            int ccount = 0;
            int fcount = 0;
            int intDocFileLength = this.FUMassContacts.PostedFile.ContentLength;
            string strPostedFileName = this.FUMassContacts.PostedFile.FileName;
            if ((strPostedFileName != string.Empty))
            {
                string strExtn = System.IO.Path.GetExtension(strPostedFileName).ToLower();
                if ((strExtn == ".csv"))
                {
                    if (FUMassContacts.HasFile)
                    {
                        // FileInfo fileinfo = new FileInfo(filUpload.PostedFile.FileName);
                        string strCsvFilePath = Server.MapPath("~\\App_Data\\" + FUMassContacts.FileName);
                        //Save the CSV file in the Server inside 'CSVFolder' 
                        FUMassContacts.SaveAs(strCsvFilePath);
                        csvDataTable = DataFlow.csvToDataTable(strCsvFilePath, true);
                        GridView grd = new GridView();
                        grd.DataSource = csvDataTable;
                        grd.DataBind();
                        if (grd.Rows.Count > 0)
                        {
                            for (int count = 0; count <= grd.Rows.Count - 1; count++)
                            {
                                if (grd.Rows[count].Cells[0].Text.Length == 10)
                                {
                                    object ContactId = SqlHelper.ExecuteScalar(GlobalVariable.con, CommandType.Text, "select ContactId from tbl_groupcontacts where MobileNumber='" + grd.Rows[count].Cells[0].Text.ToString() + "'");
                                    if (ContactId != null)
                                    {

                                        SqlHelper.ExecuteNonQuery(GlobalVariable.con, CommandType.Text, "delete from tbl_groupcontacts where MobileNumber='" + grd.Rows[count].Cells[0].Text + "' and Unsubscribed='false'");
                                        ccount++;

                                    }
                                    else
                                    {
                                        fcount++;
                                    }
                                }
                            }
                            string SelectGroup = "(" + ccount + ") Contacts deleted from list.";
                            Page.Controls.Add(new LiteralControl("<script language='javascript'> window.alert('" + SelectGroup + "')</script>"));
                            foreach (ListViewItem lvi in lstGroups.Items)
                            {
                                LinkButton lblsubgroupname = (LinkButton)lvi.FindControl("lbtnSubGroupName");
                                Label lblSubgroupContacts = (Label)lvi.FindControl("lblSubgroupContacts");
                                object grpid = SqlHelper.ExecuteScalar(GlobalVariable.con, CommandType.Text, "select groupid from tbl_group where groupname ='" + lblsubgroupname.Text + "'");
                                object subgroupcontacts = SqlHelper.ExecuteScalar(GlobalVariable.con, CommandType.Text, "select count(MobileNumber) from tbl_groupcontacts where groupid = " + grpid + " and Unsubscribed='false'");
                                lblSubgroupContacts.Text = "(" + subgroupcontacts.ToString() + ")";
                            }
                            foreach (ListViewItem lvi in lstContacts.Items)
                            {
                                CheckBox chkContacts = (CheckBox)lvi.FindControl("chkContacts");
                                if (chkContacts.Checked == true)
                                {
                                    chkContacts.Checked = false;
                                }
                            }
                            object totalcontacts = SqlHelper.ExecuteScalar(GlobalVariable.con, CommandType.Text, "select count(ContactId) from tbl_groupcontacts where Unsubscribed='false'");
                            if (totalcontacts != null)
                            {
                                lbt.Text = "(" + totalcontacts.ToString() + ")";
                            }
                        }
                    }
                }
            }
            
        }
        catch (Exception exp)
        {

        }
    }

    protected void btnMassDelete_Click(object sender, EventArgs e)
    {
        try
        {
            int ccount = 0;
            int fcount = 0;
            int intDocFileLength = this.FUMassDelete.PostedFile.ContentLength;
            string strPostedFileName = this.FUMassDelete.PostedFile.FileName;
            if ((strPostedFileName != string.Empty))
            {
                string strExtn = System.IO.Path.GetExtension(strPostedFileName).ToLower();
                if ((strExtn == ".csv"))
                {
                    if (FUMassDelete.HasFile)
                    {
                        // FileInfo fileinfo = new FileInfo(filUpload.PostedFile.FileName);
                        string strCsvFilePath = Server.MapPath("~\\App_Data\\" + FUMassDelete.FileName);
                        //Save the CSV file in the Server inside 'CSVFolder' 
                        FUMassDelete.SaveAs(strCsvFilePath);
                        csvDataTable = DataFlow.csvToDataTable(strCsvFilePath, true);
                        GridView grd = new GridView();
                        grd.DataSource = csvDataTable;
                        grd.DataBind();
                        if (grd.Rows.Count > 0)
                        {
                            for (int count = 0; count <= grd.Rows.Count - 1; count++)
                            {
                                if (grd.Rows[count].Cells[0].Text.Length == 10)
                                {
                                    object ContactId = SqlHelper.ExecuteScalar(GlobalVariable.con, CommandType.Text, "select ContactId from tbl_groupcontacts where MobileNumber='" + grd.Rows[count].Cells[0].Text.ToString() + "'");
                                    if (ContactId != null)
                                    {

                                        SqlHelper.ExecuteNonQuery(GlobalVariable.con, CommandType.Text, "update tbl_groupcontacts set Unsubscribed='true' where MobileNumber='" + grd.Rows[count].Cells[0].Text + "'");
                                        ccount++;

                                    }
                                    else
                                    {
                                        fcount++;
                                    }
                                }
                            }
                            string SelectGroup = "(" + ccount + ") Contacts opted out from list.";
                            Page.Controls.Add(new LiteralControl("<script language='javascript'> window.alert('" + SelectGroup + "')</script>"));
                            foreach (ListViewItem lvi in lstGroups.Items)
                            {
                                LinkButton lblsubgroupname = (LinkButton)lvi.FindControl("lbtnSubGroupName");
                                Label lblSubgroupContacts = (Label)lvi.FindControl("lblSubgroupContacts");
                                object grpid = SqlHelper.ExecuteScalar(GlobalVariable.con, CommandType.Text, "select groupid from tbl_group where groupname ='" + lblsubgroupname.Text + "'");
                                object subgroupcontacts = SqlHelper.ExecuteScalar(GlobalVariable.con, CommandType.Text, "select count(MobileNumber) from tbl_groupcontacts where groupid = " + grpid + " and Unsubscribed='false'");
                                lblSubgroupContacts.Text = "(" + subgroupcontacts.ToString() + ")";
                            }
                            foreach (ListViewItem lvi in lstContacts.Items)
                            {
                                CheckBox chkContacts = (CheckBox)lvi.FindControl("chkContacts");
                                if (chkContacts.Checked == true)
                                {
                                    chkContacts.Checked = false;
                                }
                            }
                            object totalcontacts = SqlHelper.ExecuteScalar(GlobalVariable.con, CommandType.Text, "select count(ContactId) from tbl_groupcontacts where Unsubscribed='false'");
                            if (totalcontacts != null)
                            {
                                lbt.Text = "(" + totalcontacts.ToString() + ")";
                            }
                        }
                    }
                }
            }
        }
        catch (Exception exp)
        {

        }
    }
    
}
